#ifndef HEAP_H
#define HEAP_H
#include "tcpalpha.h" /*al vicio hacer un thalpha ya que la cola se implementa directamente sobre el heap*/
#include "tcppos.h"
#include "bool.h"

typedef struct sHeap * Heap;

/* constructor */
Heap
heap_create(const tcppos max); 

/* encolar */
Heap
heap_insert(Heap h, const tcpalpha elem); 

/* primero en la cola */
tcpalpha
heap_primero(const Heap h); 

 /* saca primero */
Heap
heap_pop(Heap h);

/* cola vacia? */
Bool
heap_vacio(const Heap h); 

/* cola llena? */
Bool
heap_lleno(const Heap h);

/* saca y obtiene cualquier elemento */
tcpalpha
heap_saca(Heap h); 

/* destructor */
Heap
heap_destroy(Heap h);

#endif
